在上篇介紹 AutoEncoder 的應用時有提到 VAE(Variational Autoencoder) 可以生成圖片,但是它有一些限制。VAE 實際上沒有真正的 學習 怎麼生成圖片,它只是在模仿,因此產生出來的圖片往往是圖片集中的線性組合的結果,而沒辦法真正產生新的圖片。要怎樣能突破這些問題呢?這就是本篇所要介紹:Generative Adversarial Network(GAN)魔法陣
截圖自 [地圖] 深度學習世界的魔法陣們
在本系列 英雄集結:深度學習的魔法使們 的文章中曾有幾次引用過《Deep Learning》一書的內容,其作者 Ian Goodfellow 就是提出 GAN 的人,相傳他是在酒吧裡時靈機一動,回家熬夜寫出來的。
經 Ian Goodfellow 本人證實過是真的
以下用淺白的動圖說明 GAN 的概念:
圖片來源:https://multithreaded.stitchfix.com/blog/2016/02/02/a-fontastic-voyage/
GAN 由生成器 (Generator)和判斷器 (Discriminator) 兩個神經網絡所組成,這兩個神經網絡擁有不一樣的目標,相互對抗。很常聽到的形容是,Generator
是負責做假鈔的人,Discriminator
是警察檢驗是否為假鈔。因為之間的對抗關係,所以稱為生成對抗網絡。
那為什麼 GAN 產生的圖片會優於 VAE 所產生的呢?關鍵在於 VAE 作法的目標是圖片越相似越好,但實際上越相似可能不是最好。而 GAN 是透過 discriminator
來達成目標,不像 VAE 偏表面學習,GAN 是學習精神本質的。
這些只是冰山一角,下一篇就來整理 GANs 的應用場景吧!